package ${package.ServiceImpl};


import lombok.extern.slf4j.Slf4j;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import com.xiao.hao.utils.PageResult;
import javax.annotation.Resource;
import com.xiao.hao.utils.Result;
import ${package.Entityinsert}.${entity}InsertReq;
import ${package.Entitypagereq}.${entity}QueryPageReq;
import ${package.Entityupdate}.${entity}UpdateReq;
import ${package.Conver}.${entity}Convertor;
import ${package.Entity}.${entity};
import ${package.Service}.${table.serviceName};
import com.xiao.hao.utils.BaseId;
import ${package.Mapper}.${table.mapperName};



/**
*
*
* @Description ${table.comment!} 服务实现层
* @Author ${author}
* @Date ${date}
*/
@Service
@Slf4j
public class ${table.serviceImplName} implements ${table.serviceName} {

    @Resource
    ${entity}Mapper mapper;


    /**
    * 功能描述: 角色新增
    *
    * @param req
    * @return com.xiao.hao.utils.Result
    * @author ${author}
    * @date ${date}
    */
    @Override
    public Result insert(${entity}InsertReq req) {
        return Result.succeed(mapper.insert(${entity}Convertor.INSTANCE.reqToEntity(req)));
    }


    /**
    * 功能描述: 角色修改
    *
    * @param req
    * @return com.xiao.hao.utils.Result
    * @author ${author}
    * @date ${date}
    */
    @Override
    public Result update(${entity}UpdateReq req) {
        return Result.succeed(mapper.updateById(${entity}Convertor.INSTANCE.reqToEntity(req)));
    }


    /**
    * 功能描述: 删除角色
    *
    * @param req
    * @return com.xiao.hao.utils.Result
    * @author ${author}
    * @date ${date}
    */
    @Override
    public Result delete(BaseId req) {
        return Result.succeed(mapper.deleteById(req.getId()));
    }

    /**
    * 功能描述: 角色分页查询
    *
    * @param req
    * @return com.xiao.hao.utils.PageResult
    * @author ${author}
    * @date ${date}
    */
    @Override
    public PageResult queryPage(${entity}QueryPageReq req) {
        Page<${entity}> page = mapper.selectPage(new Page(req.getNum(), req.getSize()), new LambdaQueryWrapper<${entity}>().orderByDesc(${entity}::getCreateTime));
        return PageResult.result(page.getTotal(), ${entity}Convertor.INSTANCE.entityListToRespList(page.getRecords()));
    }

<#--    /**-->
<#--    * 功能描述: 查询全部角色-->
<#--    *-->
<#--    * @return com.xiao.hao.utils.Result-->
<#--    * @author ${author}-->
<#--    * @date ${date}-->
<#--    */-->
<#--    @Override-->
<#--    public Result queryAll() {-->
<#--        return Result.succeed(${entity}Convertor.INSTANCE.entityListToRespList(command.queryAll()));-->
<#--    }-->
}



<#--/**-->
<#-- * <p>-->
<#-- * ${table.comment!} 服务实现类-->
<#-- * </p>-->
<#-- *-->
<#-- * @author ${author}-->
<#-- * @since ${date}-->
<#-- */-->
<#--@Service-->
<#--<#if kotlin>-->
<#--open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} {-->

<#--}-->
<#--<#else>-->
<#--public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {-->

<#--}-->
<#--</#if>-->
